// stockService.js
import {
  getNCCStockInfo,
  getNCCStockStatusInfo,
  getSelectNccUserInfo,
  getSelectNccDeptInfo,
  getSelectNccMaterialInfo,
  getSelectNccManufacturerInfo,
  getSelectNccSupplierInfo,
  getSelectTmsLogisticsInfo,
  getSelectNccMaterialCodeInfo,
  getSelectSupplierPkInfo,
  getSelectNccUserCodeInfo,
  getSelectNccDeptCodeInfo,
  getSelectNccManufacturerPkInfo
} from '@/api/dropDown.js';

export default {
  // 1、获取NCC仓库信息
  searchNCCStockList(context) {
    context.loading = true; // 开始加载

    return getNCCStockInfo()
      .then(response => {
        context.NccStockList = response.data;
        context.NccStockOptions = context.NccStockList.map(item => ({
          name: item.label, // 仓库名称
          pk: item.value, //  NCC仓库主键
        }));
      })
      .catch(() => {
        context.$message.error('查询NCC仓库信息加载失败');
      })
      .finally(() => {
        context.loading = false;
      });
  },

  // 2、获取NCC库存状态信息
  searchNCCStockStatusList(context) {
    context.loading = true; // 开始加载

    return getNCCStockStatusInfo()
      .then(response => {
        context.NccStatusList = response.data;
        context.NccStatusOptions = context.NccStatusList.map(item => ({
          name: item.label, // 库存状态名称
          pk: item.value, //  库存状态主键
        }));
      })
      .catch(() => {
        context.$message.error('查询NCC库存状态信息加载失败');
      })
      .finally(() => {
        context.loading = false;
      });
  },


  // 3、获取NCC用户信息
  searchSelectNccUserList(context) {
    context.loading = true; // 开始加载

    return getSelectNccUserInfo()
      .then(response => {
        context.NccUserList = response.data;
        context.NccUserOptions = context.NccUserList.map(item => ({
          name: item.label, // NCC用户姓名
          pk: item.value, //   NCC用户姓名主键
        }));
      })
      .catch(() => {
        context.$message.error('查询NCC用户信息加载失败');
      })
      .finally(() => {
        context.loading = false;
      });
  },


  // 4、获取NCC-普锐特部门信息
  // deptName NCC-普锐特部门名称 支持模糊查询
  searchSelectNccDept(query, context) {
    if (query !== '') {
      context.loading = true; // 开始加载
      const params = {
        deptName: query, // 传入输入的关键字
      };
      return getSelectNccDeptInfo(params)
        .then(response => {
          if (response.code === 200) {
            // 更新物料选项
            context.deptNameOptions = response.data.map(item => ({
              name: item.label, // NCC-普锐特部门名称
              pk: item.value, // NCC-普锐特部门主键
            }));
          } else {
            context.deptNameOptions = [];
          }
        })
        .catch(error => {
          console.error('查询NCC物料信息失败:', error);
          context.deptNameOptions = [];
        })
        .finally(() => {
          context.loading = false; // 停止加载
        });
    } else {
      context.deptNameOptions = [];
    }
  },

  // 5、获取NCC物料信息
  // materialName NCC物料名称 支持模糊查询
  searchSelectNccMaterial(query, context) {
    if (query !== '') {
      context.loading = true; // 开始加载
      const params = {
        materialName: query, // 传入输入的关键字
      };
      return getSelectNccMaterialInfo(params)
        .then(response => {
          if (response.code === 200) {
            // 更新物料选项
            context.materialNameOptions = response.data.map(item => ({
              name: item.label, // 物料名称
              pk: item.value, // 物料主键
            }));
          } else {
            context.materialNameOptions = [];
          }
        })
        .catch(error => {
          console.error('查询NCC物料信息失败:', error);
          context.materialNameOptions = [];
        })
        .finally(() => {
          context.loading = false; // 停止加载
        });
    } else {
      context.materialNameOptions = [];
    }
  },

  // 6、获取NCC生产厂商信息-code
  // manufacturerName NCC生产厂商名称 支持模糊查询
  searchSelectNccManufacturer(query, context) {
    if (query !== '') {
      context.loading = true; // 开始加载
      const params = {
        manufacturerName: query, // 传入输入的关键字
      };

      return getSelectNccManufacturerInfo(params)
        .then(response => {
          if (response.code === 200) {
            // 更新选项
            context.manufacturerNameOptions = response.data.map(item => ({
              name: item.label, // 生产商名称
              pk: item.value, // 生产商code
            }));
          } else {
            context.manufacturerNameOptions = [];
          }
        })
        .catch(error => {
          console.error('查询NCC生产厂商信息失败:', error);
          context.manufacturerNameOptions = [];
        })
        .finally(() => {
          context.loading = false; // 停止加载
        });
    } else {
      context.manufacturerNameOptions = [];
    }
  },

  // 7、获取NCC供应商信息-code
  // supplierName NCC供应商名称 支持模糊查询
  searchSelectNccSupplier(query, context) {
    if (query !== '') {
      context.loading = true; // 开始加载
      const params = {
        supplierName: query, // 传入输入的关键字
      };

      return getSelectNccSupplierInfo(params)
        .then(response => {
          if (response.code === 200) {
            // 更新选项
            context.supplierNameOptions = response.data.map(item => ({
              name: item.label, // 供应商名称
              pk: item.value, // 供应商编码
            }));
          } else {
            context.supplierNameOptions = [];
          }
        })
        .catch(error => {
          console.error('查询NCC供应商信息失败:', error);
          context.supplierNameOptions = [];
        })
        .finally(() => {
          context.loading = false; // 停止加载
        });
    } else {
      context.supplierNameOptions = [];
    }
  },

  // 8、获取TMS物流企业
  // logistics 获取TMS物流企业 支持模糊查询
  searchSelectTmsLogistics(query, context) {
    if (query !== '') {
      context.loading = true; // 开始加载
      const params = {
        logistics: query, // 传入输入的关键字
      };

      return getSelectTmsLogisticsInfo(params)
        .then(response => {
          if (response.code === 200) {
            // 更新选项
            context.logisticsOptions = response.data.map(item => ({
              name: item.label, //  TMS物流企业名称
              pk: item.value, //  TMS物流企业编码
            }));
          } else {
            context.logisticsOptions = [];
          }
        })
        .catch(error => {
          console.error('查询TMS物流企业失败:', error);
          context.supplierNameOptions = [];
        })
        .finally(() => {
          context.loading = false; // 停止加载
        });
    } else {
      context.supplierNameOptions = [];
    }
  },

  // 9、获取NCC物料信息-code
  // materialName NCC物料名称 支持模糊查询
  searchSelectNccMaterialCode(query, context) {
    if (query !== '') {
      context.loading = true; // 开始加载
      const params = {
        materialName: query, // 传入输入的关键字
      };

      return getSelectNccMaterialCodeInfo(params)
        .then(response => {
          if (response.code === 200) {
            // 更新选项
            context.materialNameOptions = response.data.map(item => ({
              name: item.label, // 物料名称
              code: item.value, // NCC物料名称code
            }));
          } else {
            context.materialNameOptions = [];
          }
        })
        .catch(error => {
          console.error('查询NCC物料信息-code信息失败:', error);
          context.materialNameOptions = [];
        })
        .finally(() => {
          context.loading = false; // 停止加载
        });
    } else {
      context.materialNameOptions = [];
    }
  },

  // 10、获取NCC供应商信息-pk
  // supplierName NCC供应商名称 支持模糊查询
  searchSelectSupplierPk(query, context) {
    if (query !== '') {
      context.loading = true; // 开始加载
      const params = {
        supplierName: query, // 传入输入的关键字
      };

      return getSelectSupplierPkInfo(params)
        .then(response => {
          if (response.code === 200) {
            // 更新选项
            context.supplierNameOptions = response.data.map(item => ({
              name: item.label, // 供应商名称
              pk: item.value, // 供应商pk
            }));
          } else {
            context.supplierNameOptions = [];
          }
        })
        .catch(error => {
          console.error('查询NCC供应商信息- pk信息失败:', error);
          context.supplierNameOptions = [];
        })
        .finally(() => {
          context.loading = false; // 停止加载
        });
    } else {
      context.supplierNameOptions = [];
    }
  },

  // 11、获取NCC用户信息-code
  // username NCC用户名称 支持模糊查询
  searchSelectNccUserCode(query, context) {
    if (query !== '') {
      context.loading = true; // 开始加载
      const params = {
        username: query, // 传入输入的关键字
      };

      return getSelectNccUserCodeInfo(params)
        .then(response => {
          if (response.code === 200) {
            // 更新选项
            context.usernameOptions = response.data.map(item => ({
              name: item.label, // NCC用户名称
              pk: item.value, // NCC用户pk
            }));
          } else {
            context.usernameOptions = [];
          }
        })
        .catch(error => {
          console.error('查询NCC用户信息-code信息失败:', error);
          context.usernameOptions = [];
        })
        .finally(() => {
          context.loading = false; // 停止加载
        });
    } else {
      context.usernameOptions = [];
    }
  },

  // 12、获取NCC-普锐特部门信息
  // deptName NCC-普锐特部门名称 支持模糊查询
  searchSelectNccDeptCode(query, context) {
    if (query !== '') {
      context.loading = true; // 开始加载
      const params = {
        deptName: query, // 传入输入的关键字
      };
      return getSelectNccDeptCodeInfo(params)
        .then(response => {
          if (response.code === 200) {
            // 更新物料选项
            context.deptNameOptions = response.data.map(item => ({
              name: item.label, // NCC-普锐特部门名称
              code: item.value, // NCC-普锐特部门code
            }));
          } else {
            context.deptNameOptions = [];
          }
        })
        .catch(error => {
          console.error('查询NCC物料信息失败:', error);
          context.deptNameOptions = [];
        })
        .finally(() => {
          context.loading = false; // 停止加载
        });
    } else {
      context.deptNameOptions = [];
    }
  },


  // 13、获取NCC生产厂商信息-pk (对应6_code)
  // manufacturerName NCC生产厂商名称 支持模糊查询
  searchSelectNccManufacturerPk(query, context) {
    if (query !== '') {
      context.loading = true; // 开始加载
      const params = {
        manufacturerName: query, // 传入输入的关键字
      };

      return getSelectNccManufacturerPkInfo(params)
        .then(response => {
          if (response.code === 200) {
            // 更新选项
            context.manufacturerNameOptions = response.data.map(item => ({
              name: item.label, // 生产商名称
              pk: item.value, // 生产商pk
            }));
          } else {
            context.manufacturerNameOptions = [];
          }
        })
        .catch(error => {
          console.error('查询NCC生产厂商信息失败:', error);
          context.manufacturerNameOptions = [];
        })
        .finally(() => {
          context.loading = false; // 停止加载
        });
    } else {
      context.manufacturerNameOptions = [];
    }
  },


};


// 所有方法都可以在不同的页面中复用，只需要传入相应的 context（即 Vue 组件实例）。
// context（即 Vue 组件实例）需要传递给每个方法，以便在方法内部可以访问和更新组件的状态。



// 以下为页面调用方法：

// 引入下拉框方法组件
// import searchSelect from '@/views/components/dropDown/searchSelect.js';


// // 5、获取NCC物料信息
// searchSelectNccMaterial(query) {
//   SearchSelect.searchSelectNccMaterial(query, this);
// },

// // 10、获取NCC供应商信息- pk
// searchSelectSupplierPk(query) {
//   SearchSelect.searchSelectSupplierPk(query, this);
// },

// // 11、获取NCC用户信息-code
// searchSelectNccUserCode(query) {
//   SearchSelect.searchSelectNccUserCode(query, this);
// },